package req

// UserRegisterReq 用户注册
type UserRegisterReq struct {
	RegWay     string `json:"reg_way"`     // 注册方式：username(用户名注册)、email(邮箱注册)、mobile(手机号注册)
	Username   string `json:"username"`    // 用户名
	Mobile     string `json:"mobile"`      // 手机号码
	Email      string `json:"email"`       // 邮箱
	Password   string `json:"password"`    // 密码
	Code       string `json:"code"`        // 验证码
	InviteCode string `json:"invite_code"` // 邀请码
}

// SendCodeReq 发送验证码
type SendCodeReq struct {
	Receiver string `json:"receiver"` // 接收者，可以是手机号或者邮箱
}

// UserLoginReq 用户登录
type UserLoginReq struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

// UserProfileReq 用户基本信息
type UserProfileReq struct {
	Id          uint   `json:"id"`
	Nickname    string `json:"nickname"`
	Username    string `json:"username"`
	Avatar      string `json:"avatar"`
	Power       int    `json:"power"`
	ExpiredTime int64  `json:"expired_time"`
	Vip         bool   `json:"vip"`
}

// UpdateUserPassReq 用户修改密码
type UpdateUserPassReq struct {
	OldPass  string `json:"old_pass"` // 旧密码
	Password string `json:"password"` // 新密码
}

// UserRetrievalPasswordReq 用户找回密码
type UserRetrievalPasswordReq struct {
	Type     string `json:"type"`     // 验证类别：mobile email
	Mobile   string `json:"mobile"`   // 手机号
	Email    string `json:"email"`    // 邮箱
	Code     string `json:"code"`     // 验证码
	Password string `json:"password"` // 新密码
}

// UserBindEmailReq 用户绑定邮箱
type UserBindEmailReq struct {
	Email string `json:"email"`
	Code  string `json:"code"`
}

// UserBindMobileReq 用户绑定手机号
type UserBindMobileReq struct {
	Mobile string `json:"mobile"`
	Code   string `json:"code"`
}

// ManagerUserResetPassReq 后台管理员重置密码
type ManagerUserResetPassReq struct {
	Id       uint   `json:"id"`
	Password string `json:"password"`
}

// ManagerUserEnableReq 后台管理员启用禁用
type ManagerUserEnableReq struct {
	Id      uint `json:"id"`
	Enabled bool `json:"enabled"`
}

// ManagerUserAddReq 后台添加管理员
type ManagerUserAddReq struct {
	Username string `json:"username"`
	Password string `json:"password"`
	Status   bool   `json:"status"`
}

// UserResetPassReq 后台用户重置密码
type UserResetPassReq struct {
	Id       uint   `json:"id"`
	Password string `json:"password"`
}

// UserSaveReq 后台添加用户
type UserSaveReq struct {
	Id          uint     `json:"id"`
	Password    string   `json:"password"`
	Username    string   `json:"username"`
	Mobile      string   `json:"mobile"`
	Email       string   `json:"email"`
	ChatRoles   []string `json:"chat_roles"`
	ChatModels  []int    `json:"chat_models"`
	ExpiredTime string   `json:"expired_time"`
	Status      bool     `json:"status"`
	Vip         bool     `json:"vip"`
	Power       int      `json:"power"`
}
